home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / sozo2 / scdoc20.lzh / REL20.DOC < prev    next >
Text File  |  1991-05-19  |  4KB  |  91 lines

  1.  
  2.         Sozobon C Compiler, release 2.0
  3.  
  4. The new 'cc' command has revised and added options.  This list of
  5. options replaces the one in the old documentation.  Note that all
  6. options now have upper-case synonyms so that the compiler can be
  7. used with shells and TOS versions that convert all parameters to
  8. upper case.
  9.  
  10.     -c (or -C)  :        just generate object files
  11.     -O (or -z or -Z) :    run the optimizer
  12.     -S (or -a or -A) :    dont assemble, just run the compiler
  13.     -Ipath :        path for include files
  14.     -Dname :        define 'name'
  15.     -Dname=value :        define 'name' to be 'value'
  16.     -Uname :        undefine (builtin) 'name'
  17.     -o file (or -a or -A) : put the executable in 'file'
  18.     -f file (or -F) :    read a list of file names from 'file'
  19.     -m mapfile (or -M) :    generate a map file
  20.     -v (or -V) :        print what is being done (verbose)
  21.     -n (or -N) :        print what you would do, but do nothing
  22.     -p (or -P) :        generate profiling calls
  23.     -Tdir (or -k or -K) :    put temporary files in 'dir'
  24.     -t (or -h or -H) :    dont remove compiler temporary files
  25.     -g (or -G) :        compiler for debugging
  26.     -r (or -q or -Q) :    include the floating library libm.a
  27.     -lxxx (or -j or -J) :    include the library name "libxxx.a"
  28.     -s (or -y or -Y) :    dont generate a symbol table for debugger
  29.  
  30. In particular note the following changes:
  31.     The flag for floating point used to be '-f' ... it is now '-r'
  32.     Symbol tables will be generated by default now, use '-s' to
  33.         not generate one (the old default was to NOT generate
  34.         a symbol table unless you used the 't' option)
  35.     Use the '-g' option if you plan to use the debugger 'szadb'
  36.         and you are using the optimizer
  37.  
  38.  
  39. Release 2.0 of the compiler, contains two main new features in addition
  40. to various bug fixes and performance enhancements.  Consult sozobon.doc
  41. and rel12.doc for a discussion of previous features.
  42.  
  43. 1) Long external names
  44.  
  45. The old Alcyon object file format provided for only 8 characters in
  46. external names.  Since the compiler prefixes names with a '_' char,
  47. you were effectively limited to 7 characters.  Since more and more
  48. C source code uses longer names, we have extended the Alcyon format
  49. to allow names of any length.  The assembler, link-loader, and
  50. debugger understand the new format.  Other tools have also been updated.
  51.  
  52. Old libraries can still be used with the compiler since the loader
  53. has been designed to recognise both old and new format object files.
  54.  
  55. 2) Cross tools under UNIX
  56.  
  57. Sources have been modified to allow use of the compiler, assembler,
  58. linker, etc (but not 'make' or 'szadb' obviously) under UNIX systems.
  59. Even systems with Intel byte-order and strict alignment requirements
  60. can be used.  Makefiles for unix are called 'make.unx'.  You should
  61. set the BYTEORDER macro appropriately.  Also grep the source for
  62. references to '/home/hans' and change them as needed.
  63.  
  64. The support of UNIX is experimental and we do NOT guarantee that you
  65. will have no trouble at all.  However, it has been tested somewhat
  66. on Sun, Intel 386 and Intel 860 systems.  Good luck.
  67.  
  68. 3) Details of the new symbol table format
  69.  
  70. An extended symbol table begins with a symbol which has a special
  71. name, flags and value:
  72.  
  73.     name:    'SozobonX'
  74.     flags:    0x42    (absolute text)
  75.     value:    0x87654321
  76.  
  77. After this are the usual symbols except that symbols with 9 or more
  78. characters in length have special name extension symbols after them.
  79. Each name extension symbol adds up to 8 characters to the length of
  80. the name.  It is recognized because of the special flags and value:
  81.  
  82.     flags:    0x42    (absolute text)
  83.     value:    0x87654321
  84.  
  85. Note that no normal symbol would have this combination of flags and value
  86. since all text symbols have an EVEN value.
  87.  
  88. If you tried to use the old 'nm' with a new object file, you would see
  89. what it thinks are a lot of these funny symbols.  Thus old tools MAY
  90. work with the new object and binary files.
  91.